
class A {
  static void bar() {}
  void baz() {}
}

class Person {
  String firstName;

  Person.fromJson(Map data) {
    print('in Person');
  }
}

class Employee extends Person {
  // Person does not have a default constructor;
  // you must call super.fromJson(data).
  Employee.fromJson(Map data) : super.fromJson(data) {
    print('in Employee');
  }
}

class EEE extends Person {

  EEE.fromJson2(Map data) : super.fromJson(data) {
    print("lalala");
  }

}

class BBB {
  num a;
  BBB(this.a);
}

class Bbb extends BBB {
  num e;
  Bbb(e): super(e) {
    this.e = e;
  }
}


abstract class Aa {
  doss();
}

class AA extends Aa {
  @override
  doss() {
    // TODO: implement doss
    return null;
  }
}


void main() {

  Employee.fromJson({"aa": 11});

  var a = 100;

  dynamic c = 100;
  final Num = c;
  String e = "11";
  print(a);



  var one = int.parse("1");
  assert(one == 1);

  const constantList = [1,2,3];
//  constantList[1] = 3;

  var gits = {};
  gits[1] = 2;
  print(gits[1]);
  gits[1] = null;
  print(gits[1]);


  var clapping = '\u{1f44f}';
  print(clapping);
  print(clapping.codeUnits);
  print(clapping.runes.toList());

  void doStuff(
      {List<int> list = const [1, 2, 3],
        Map<String, String> gifts = const {
          'first': 'paper',
          'second': 'cotton',
          'third': 'leather'
        }}) {
    print('list:  $list');
    print('gifts: $gifts');
    print('11''22');
  }

  doStuff();

  Function makeAdder(num addBy) {
    return (num i ) => addBy + i;
  }

  var add2 = makeAdder(2);
  print(add2);

  Function aaa(int a) {
    print(a);
  };

  Function bbb(Function bbb) {
    bbb(5);
  }

  bbb(aaa);

  var x = A.bar;
  assert(A.bar == x);


  var ef = 1;
  switch (ef) {
    case 1:
      print(111);
      break;
    case 2:
      print(222);
  }



}




